home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 05 (1982-01)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 05 (1982-01)(Softdisk)(Side B).do / FLEXIBLE MENU.bas < prev    next >
BASIC Source File  |  1996-12-24  |  4KB  |  74 lines

  1. 5  REM ***************************                          **   FLEXIBLE MENU PROGRAM  **       BY DALE SALYER     **       JULY 25, 1981      **                          *****************************
  2. 10 D$ =  CHR$(13) + CHR$(4):Q$ =  CHR$(34):Q1$ = Q$ +"," +Q$
  3. 20  DIM DESC$(20),CMD$(20),FILE$(20)
  4. 30 NP = 0:OL = 1
  5. 40  GOTO 300
  6. 140  REM *************************                          **     READ KEYBOARD AND    **     PROCESS KEYPRESS.    **                          *****************************
  7. 150 K =  PEEK( -16384)
  8. 160  IF K <128  THEN 150
  9. 170  POKE  -16368,0:C = K -192
  10. 180  IF K = 141  THEN  TEXT : HOME : PRINT D$;"CATALOG": END 
  11. 190  IF K = 160  THEN  GOSUB 250: GOTO 150
  12. 200  IF K = 155  THEN  TEXT : HOME : END 
  13. 210  IF K = 175  THEN 500
  14. 220  IF C <1  OR C >NP  THEN 150
  15. 225  VTAB 19: PRINT CMD$(C);FILE$(C)
  16. 230  PRINT D$;CMD$(C);FILE$(C)
  17. 240  END 
  18. 245  REM *************************                          **   PRINT NEXT PAGE OF     **       PROGRAMS.          **                          *****************************
  19. 250  HOME : FOR I = OL TO OL +4:VT = (I -OL +1) *2 +4
  20. 260  HTAB 3: VTAB VT: PRINT  CHR$(64 +I);: HTAB 10: PRINT DESC$(I)
  21. 270  IF I > = NP  THEN OL = 1: RETURN 
  22. 280  NEXT I
  23. 290 OL = OL +5: RETURN 
  24. 300  REM *************************                          **     PROGRAM START        **                          *****************************
  25. 310  TEXT : HOME : HTAB 8: INVERSE : PRINT "**** FLEXIBLE MENU ***"
  26. 320  VTAB 2: HTAB 8: PRINT "*** BY DALE SALYER ***"
  27. 330  VTAB 3: HTAB 8: PRINT "**********************"
  28. 335  POKE 34,4: REM  TOP
  29. 340  VTAB 23: HTAB 11: PRINT "<RETURN> CATALOG   "
  30. 350  VTAB 22: HTAB 11: PRINT "<SPACE>  NEXT PAGE "
  31. 360  VTAB 21: HTAB 11: PRINT "<ESC>APE TO BASIC  "
  32. 370  VTAB 20: HTAB 11: PRINT " / ENTER PROG. DATA"
  33. 380  READ NP: VTAB 19: HTAB 11: PRINT "A - "; CHR$(64 +NP);" SELECT PROG. "
  34. 390  NORMAL : POKE 35,18: REM  BOTTOM
  35. 400  FOR I = 1 TO NP: READ DESC$(I),CMD$(I),FILE$(I)
  36. 410  NEXT I
  37. 420  GOSUB 250
  38. 430  GOSUB 150
  39. 440  END 
  40. 500  REM *************************                          **     ENTER NEW DATA       **                          *****************************
  41. 510  TEXT : HOME : HTAB 10: PRINT "DATA STATEMENT ENTRY": POKE 34,3: FOR I = 1 TO 20: HOME 
  42. 520  VTAB 5: PRINT "NAME OF PROGRAM <QUIT = DONE,": PRINT "                 CAT = CATALOG>": INPUT FILE$(I)
  43. 524  IF FILE$(I) = "QUIT"  THEN 600
  44. 526  IF FILE$(I) = "CAT"  THEN  PRINT D$;"CATALOG": PRINT : PRINT "PRESS RETURN TO CONTINUE": GET R$: HOME : GOTO 520
  45. 530  VTAB 10: PRINT "TYPE OF FILE - <E>XEC, <B>RUN, <R>UN";: INPUT C$
  46. 535 C$ =  LEFT$(C$,1)
  47. 540  IF C$ = "E"  THEN CMD$(I) = "EXEC ": PRINT : PRINT "     EXEC": GOTO 580
  48. 550  IF C$ = "B"  THEN CMD$(I) = "BRUN ": PRINT : PRINT "     BRUN": GOTO 580
  49. 560  IF C$ = "R"  THEN CMD$(I) = "RUN ": PRINT : PRINT "     RUN": GOTO 580
  50. 570  GOTO 530
  51. 580  VTAB 15: PRINT "DESCRIPTION (25 CHAR. MAX.) :"
  52. 590  VTAB 17: HTAB 1: PRINT "_________________________!": VTAB 17: HTAB 1
  53. 595  INPUT DESC$(I): NEXT I
  54. 600 NP = I -1
  55. 610  PRINT D$;"OPEN EXECFILE": PRINT D$;"DELETE EXECFILE": PRINT D$;"OPEN EXECFILE": PRINT D$;"WRITE EXECFILE"
  56. 620  PRINT "DEL 1000,2000": PRINT "1000 DATA ";NP
  57. 630  FOR I = 1 TO NP
  58. 640  PRINT 1000 +I *10;" DATA ";Q$;DESC$(I);Q1$;CMD$(I);Q1$;FILE$(I);Q$
  59. 650  NEXT I
  60. 670  PRINT "UNLOCK FLEXIBLE MENU"
  61. 680  PRINT "SAVE FLEXIBLE MENU"
  62. 690  PRINT "LOCK FLEXIBLE MENU"
  63. 700  PRINT "RUN FLEXIBLE MENU"
  64. 710  PRINT D$;"CLOSE EXECFILE"
  65. 720  PRINT D$;"EXEC EXECFILE"
  66. 740  VTAB 20: END 
  67. 1000  DATA  7
  68. 1010  DATA  "ADVENTURE GAME","RUN ","SMURK"
  69. 1020  DATA  "SPACE WAR GAME","RUN ","RADAR.DEFENSE"
  70. 1030  DATA  "ANOTHER KENO GAME","RUN ","KENO.PROG"
  71. 1040  DATA  "ANTI BALISTIC MISSILE","RUN ","A.B.M."
  72. 1050  DATA  "MEMORY GAME","RUN ","REMEMBER.LETTERS"
  73. 1060  DATA  "GAME OF YAHTZEE","RUN ","YAHTZEE"
  74. 1070  DATA  "VOCABULARY GAME","RUN ","DICTIONARY.GAME"